The task of writing computer programs has traditionally been performed by experienced computer programmers. More recently, the industry has attempted to provide tools which simplify the creation of programs. These tools enable ordinary end users, who may lack advanced programming skills, to produce programs. Yet there is room for improvement in these efforts.